<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            /* 
            思路①：暴力法，以每个加油站都作为起点，然后遍历一遍。注意：是环形遍历，
            所以用for会很复杂，需要用while
            
            */
            var canCompleteCircuit = function (gas, cost) {
                for (let i = 0; i < cost.length; i++) {
                    //开往下一个站点后剩余的油量
                    let rest = gas[i] - cost[i]
                    //下一个站点的下标。因为环形的，最后一个移动一位又到了第一位，所以需要用%
                    let index = (i + 1) % gas.length
                    //剩余流量还存在，还未碰面
                    while (rest > 0 && index !== i) {
                        rest += gas[index] - cost[index]
                        index = (index + 1) % gas.length
                    }
                    if (rest >= 0 && index == i) return i
                }
                return -1
            }
        </script>
    </body>
</html>
